﻿using System;
using System.Collections.Generic;
using System.Text;

namespace RaisingStudio.Data.Common.Builders.Expressions
{
    /// <summary>
    /// Command epxression Command builder.
    /// </summary>
    public class CommandExpressionCommandBuilder : ExpresssionCommandBuilder
    {
        #region static member
        /// <summary>
        /// Format string of parameter name.
        /// </summary>
        public const string PARAMETERNAMEFORMAT = "@pc{0}";
        #endregion

        
        #region Common property 
        private bool useColumnsForParameterNames = false;
        /// <summary>
        /// If the value is true, it will generate the parameter name as column name (if possible), if it's false, it will generate @p1, @p2 like that.
        /// </summary>
        public bool UseColumnsForParameterNames
        {
            get
            {
                return this.useColumnsForParameterNames;
            }
            set
            {
                this.useColumnsForParameterNames = value;
            }
        }

        private RaisingStudio.Data.Expressions.Commands.Expression commandExpression;
        public RaisingStudio.Data.Expressions.Commands.Expression CommandExpression
        {
            get
            {
                return this.commandExpression;
            }
            set
            {
                this.commandExpression = value;
            }
        }
        #endregion

        #region Constructor
        /// <summary>
        /// Constructor
        /// </summary>
        public CommandExpressionCommandBuilder()
        {
        }

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="commandExpression">Command expression</param>
        public CommandExpressionCommandBuilder(RaisingStudio.Data.Expressions.Commands.Expression commandExpression)
        {
            this.commandExpression = commandExpression;
        }
        #endregion

        public override RaisingStudio.Data.CommonCommand GetExpressionCommand()
        {
            return null;
        }
    }
}
